// 封装和牛马相关的功能
import request from '@/utils/request'
/**
 * 获取员工列表
 * @param {Object} params page pagesize departmentId keyword(可选)
 * @returns 请求
 */
export const getEmployeeList = (params) =>
  request({
    url: '/sys/user',
    method: 'get',
    params: params
    // {
    //   page: 1,
    //   pagesize: 20,
    //   departmentId: 1,
    //   keyword: ''
    // }
  })

  /**
   * 导出员工列表 
   * 获取后端处理好的文件数据(二进制流 blob)
   * axios能耐很大 什么数据都能处理 但是你得说清楚每次来的是什么数据
   * axios默认是JSON.parse
   * blob => 浏览器能处理的二进制数据
   * **/ 
  export const exportEmployee = () => {
    return request({
      url: '/sys/user/export',
      method: 'get',
      responseType: 'blob'   // 不帮你 JSON.parse 有别的处理方式
      
    })
  }


  /**
 * 获取模板文件
 * @returns 请求
 */
export const getTemplateData = () => {
  return request({
    url: '/sys/user/import/template',
    responseType: 'blob'
  })
}

/**
 * 上传 excel文件
 * @param {*} file 文件对象
 * @returns 请求
 * **/ 
export function uploadExcel (file){
  // FormData 内置的 构造函数 处理文件上传的
    const formData = new FormData()  //{} 对象的升级版本 

    formData.append('file',file)

   return request({
  url:'/sys/user/import',
   method:'post',
  data:formData
  // {
  //   file: file
  // }
})
}
/**
 * 单个 新增员工
 * **/ 
export function addEmployee(data) {
  return request({
    url: '/sys/user',
    method: 'post',
    data
  })
}

/**
 *  获取员工详情
 * **/

export function getEmployeeDetail(id) {
  return request({
    url: `/sys/user/${id}`
  })
}

/**
 * 更新员工数据
 * **/ 
export function updateEmployee(data) {
  return request({
    url: `/sys/user/${data.id}`,
    method: 'put',
    data
  })
}

/**
 * 删除员工
 * **/
export function deleteEmployee(id) {
  return request({
    url: `/sys/user/${id}`,
    method: 'delete'
  })
}

/**
 * 获取可用的角色
 * **/

export function getEnableRoleList() {
  return request({
    url: '/sys/role/list/enabled'
  })
}

/**
 * 分配员工角色
 * ***/

export function assignRole(data) {
  return request({
    url: '/sys/user/assignRoles',
    method: 'put',
    data
  })
}